Conventional data storage systems typically include one or more storage processors coupled to one or more arrays of non-volatile storage devices, such as, for example, magnetic disk drives, electronic flash drives, and/or optical drives. The storage processors are configured to service input/output (IO) requests generated by host computers that specify files, blocks, or other data elements to be created on, read from, written to, and/or deleted from the respective arrays of non-volatile storage devices. The storage processors execute software that manages the incoming IO requests, and performs various data processing tasks to organize and secure the files, blocks, or other data elements on the non-volatile storage devices.
Such data storage systems can employ compression technology to better utilize storage resources on the non-volatile storage devices. Compression enables the data storage systems to store more data in the same amount of non-volatile storage space. One approach to compressing data involves performing inline compression on received data, and writing resulting compressed data to a non-volatile storage device.